package com.example.utils;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class InvokeTable {

    private static ConcurrentHashMap<String, Map<String, Invoke>> concurrentHashMap =
            new ConcurrentHashMap<>();

    /**
     * 添加invoke
     *
     * @param module
     * @param cmd
     * @param invoke
     */
    public static void addInvoke(String module, String cmd, Invoke invoke) {
        Map<String, Invoke> map = concurrentHashMap.get(module);
        if (map == null) {
            map = new HashMap<>();
            concurrentHashMap.put(module, map);
        }
        map.put(cmd, invoke);
    }

    /**
     * 获取invoke
     *
     * @param module
     * @param cmd
     * @return
     */
    public static Invoke getInvoke(String module, String cmd) {
        Map<String, Invoke> invokeMap = concurrentHashMap.get(module);
        if (invokeMap != null) {
            return invokeMap.get(cmd);
        }
        return null;
    }
}
